iT邦幫忙

2022 iThome 鐵人賽

DAY 1
0
Web 3

Smart-Contract Language: Move系列 第 1

Day 1 前言和整裝待發

  • 分享至 

  • xImage
  •  

前言和整裝待發

前言

Move Language 的靈感來源於 Rust,是當時為了開發 Diem 而開發出來的一種新的編程語言,和以太坊用的 solidity 不一樣。以太坊當時主要解決的是比特幣上編寫智能合約困難的問題,所以 solidity 是面向區塊鏈智能合約的編程語言,它把 token 當作 value(數值)來進行處理,交易通過通過將一個地址的餘額減少,和另一個地址的餘額增加,並且減少和增加的數值一定要是相等的,這個就很容易產生資產安全問題,可能會有資產憑空產生或者消失的情況。

Move 不是面向智能合約的編程語言,而是面向區塊鏈鏈上資產的編程語言,它將 token 作為 resource(資源)來處理,在底層進行封裝,而且必須要和帳戶進行綁定,一個帳戶在一個時間只能有一種類型的 resource,從帳戶中被取出時就必須被使用,取多少用多少。以及諸多安全機制,讓 Move 更適用於區塊鏈開發。也有了透過鐵人 30 來學習 Move 的想法。

筆者規劃

從 concept 和 coding convention 起頭暖身,並陸續介紹 primitive type, expression and scope… 等等基本知識。

Advance Topic 分為 part1 和 part2 涵蓋了眾多進階知識,包含了像是 Global Storage, types with abilities, unit test… 等等。

最後,利用上述知識,帶大家完成實作項目 Creating Coins。

一天 Move 一點,讓我們 30 天成為 Move 大師吧!

環境設定

建議使用 Potem 所開發的雲端編輯器直接操作即可。

https://playground.pontem.network/

Potem Playground 指南

  1. 點擊左邊項目欄 Projects 並建立一個新項目 “HelloWorld”。

  2. 點擊創建的項目。

  3. 點擊文件夾右邊的 + 將新文件 test_module.move 添加到 sources 區域中,並貼上下面內容。

    address 0x1 {
        module HelloWorld {
        public fun gimme_five(): u8 {
            5
        }
        }
    }
    
  4. 點擊文件夾右邊的 + 將新文件 test.script.move 添加到 scripts 區域中,並貼上下面內容。

    script {
        use 0x1::HelloWorld;
        use 0x1::Debug;
    
        fun main() {
            let res = HelloWorld::hello();
    
            Debug::print<u8>(&res);
        }
    }
    
  5. 通過點擊左上方 Build 按鈕來建構項目。

  6. 左測菜單中選則 Run Script,並輸入 main() 按 enter 來執行腳本。
    https://ithelp.ithome.com.tw/upload/images/20220912/20150953gVC1KRtzyG.png

  7. console 結過如看到下圖,代表可以 Move to Day 2。
    https://ithelp.ithome.com.tw/upload/images/20220912/20150953dCGOgjuY7M.png


下一篇
Day 2 Concept and Coding Conventions
系列文
Smart-Contract Language: Move30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言